﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ConnectionBase;

namespace EveProd
{
	public partial class FormResultatUnitaire : Form
	{
		private string NomBluePrint { get; set; }

		// Ma connexion à la base de donnée
		private DataClassesEveProdDataContext _dataContextBase = new DataClassesEveProdDataContext(); 

		public FormResultatUnitaire(string nomBlueprint)
		{
			NomBluePrint = nomBlueprint.Replace(" Blueprint", ""); ;
			InitializeComponent();
		}

		private void FormResultatUnitaire_Load(object sender, EventArgs e)
		{
			var idItemDuNom = (from gg in _dataContextBase.ItemsEve
							   where gg.NomItem == NomBluePrint
							   select gg.IdItem);

			// Pour mettre à jour les informations BPC
			var infoBpc = (from gg in _dataContextBase.Blueprint
			               from it in idItemDuNom 
			               where it == gg.IdProduct
			               select new
			                      	{
			                      		ME = gg.MaterielEfficiency,
										PE = gg.ProductionEfficiency
			                      	}).FirstOrDefault();
			textBoxMe.Text = infoBpc.ME.ToString();
			textBoxPe.Text = infoBpc.PE.ToString();

			// Pour affichage des Informations ISK
			try
			{
				var infoIsk = (from gg in _dataContextBase.ViewResultats
				               where NomBluePrint == gg.NomItem
				               select new
				                      	{
				                      		CoutProd = gg.CoutProduction,
				                      		Benef = gg.Benefice,
				                      		Vente = gg.PrixVente
				                      	}).First();

				// TODO : En cours.
				textBoxBenef.Text = String.Format("{0:n}", infoIsk.Benef);
				textBoxCoutProd.Text = String.Format("{0:n}", infoIsk.CoutProd);
				textBoxPrixVente.Text = String.Format("{0:n}",infoIsk.Vente);
			}
			catch(Exception)
			{
				MessageBox.Show("Il n'y a pas résultat possible à afficher, possible qu'un composant à une valeur à zéro", "Warning",
				                MessageBoxButtons.OK, MessageBoxIcon.Warning);
			}
			// Affichage pour le DataGrid.
			var resultatBp = (from vueRes in _dataContextBase.ViewDetailResultat
							  from it in idItemDuNom
							  where it == vueRes.IdItemEve
			                  select new
			                         	{
			                         		Nom_Item = vueRes.NomItem,
											Quantité = vueRes.QuantiteYou,
											Prix_Unitaire = vueRes.PrixUnitaire,
											Prix_total = vueRes.PrixTotal,
											Temps_Prod = vueRes.TempsProdYou
			                         	});

			dataGridViewResultatSimple.DataSource = resultatBp;
		}

		private void buttonQuitter_Click(object sender, EventArgs e)
		{
			Close();
		}

	}
}
